package com.sailing.core.demo.fileDemo;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * @author chenchao7
 * @date 2022/3/29 11:10
 */
public class FilePathTest {

    private void printPath(){
        // 第一种：获取类加载的根路径
        String filePath = this.getClass().getResource("/").getPath();
        System.out.println("this.getClass().getResource(\"/\").getPath():"+filePath);

        // 获取当前类的所在工程路径; 如果不加“/”  获取当前类的加载目录  D:\git\daotie\daotie\target\classes\my
        String filePath2 = this.getClass().getResource("").getPath();
        System.out.println("getClass().getResource(\"\").getPath():"+ filePath2);

        // 第二种：获取项目路径    D:\git\daotie\daotie
        try {
            File directory = new File("");// 参数为空
            String courseFile = null;
            courseFile = directory.getCanonicalPath();
            System.out.println("getCanonicalPath:" + courseFile);
        } catch (IOException e) {
            e.printStackTrace();
        }



        // 第三种：  file:/D:/git/daotie/daotie/target/classes/
        URL xmlpath = this.getClass().getClassLoader().getResource("");
        System.out.println("this.getClass().getClassLoader().getResource(\"\"):"+xmlpath);


        // 第四种： D:\git\daotie\daotie
        System.out.println("System.getProperty(\"user.dir\"):"+System.getProperty("user.dir"));
        /*
         * 结果： C:\Documents and Settings\Administrator\workspace\projectName
         * 获取当前工程路径
         */

        // 第五种：  获取所有的类路径 包括jar包的路径
        System.out.println("System.getProperty(\"java.class.path\"):"+System.getProperty("java.class.path"));
    }

    public static void main(String[] args) {

        new FilePathTest().printPath();
    }
}
